package com.zhanghe.study.study_scala.fun

/**
 * 闭包
 * @author zh
 * @date 2021/5/17 14:53
 */
object TestClosure {
  def main(args: Array[String]): Unit = {
    def minus(num :Int,num1:Int) = {
      num - num1
    }

    // minusNum函数体是一个匿名函数
    def minusNum(num : Int) = (y:Int) => num-y
    // 返回函数是一个对象，而 num 就是该对象的一个字段，他们共同形成一个闭包
    // fun函数是一个闭包
    val fun:Function1[Int,Int] = minusNum(20)
    println(minusNum(20)(1))
    println(fun(3))



  }
}
